// 入口函数
$(function () {
  // 获取用户信息渲染头像
  getUserInfo()

  // 退出
  $('#logout').on('click', function () {
    layer.confirm('确认退出登录吗？', { icon: 3, title: '提示' }, function (
      index
    ) {
      //do something

      localStorage.removeItem('token')
      location.href = '/login.html'
      layer.close(index)
    })
  })
})

// 获取用户信息渲染头像封装成函数
function getUserInfo () {
  axios({
    url: '/my/userinfo'
    // headers: {
    //   Authorization: localStorage.getItem('token')
    // }
  }).then(res => {
    // 判断
    if (res.data.status !== 0) {
      return layui.layer.msg(res.data.message)
    }
    // 渲染
    renderAvatar(res.data.data)
  })
}

// 渲染用户信息和头像
function renderAvatar (user) {
  let name = user.nickname || user.username
  $('.welcome').html('欢迎 ' + name)
  // 处理头像
  if (user.user_pic !== null) {
    $('.avatar-text').hide()
    $('.layui-nav-img')
      .show()
      .attr('src', user.user_pic)
  } else {
    // 没有图片头像,就渲染文字头像
    $('.layui-nav-img').hide()
    // 渲染name中的第一个单词字符,而且大写
    let first = name[0].toUpperCase()
    $('.avatar-text')
      .show()
      .html(first)
  }
}

// 拦截所有请求,添加路径前缀
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'

// 添加请求拦截器
axios.interceptors.request.use(
  function (config) {
    if (config.url.indexOf('/my') !== -1) {
      config.headers.Authorization = localStorage.getItem('token')
    }
    // 修改完毕的config需要返回
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)

// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // console.log(response)
    if (response.data.message === '身份认证失败！') {
      //跳转到登录页面,销毁token
      location.href = '/login.html'
      localStorage.removeItem('token')
    }
    // 返回response
    return response
  },
  function (error) {
    return Promise.reject(error)
  }
)
